"رمزنگاریِ امری"، سیستمی که توسط محققان MIT توسعه یافته است، به طور خودکار الگوریتم های رمزنگاری شده، که در سراسر سیستم عامل های سخت افزاری بهینه سازی شده اند، را تولید و به طور همزمان ممیزی می کند. الگوریتم های تولید شده توسط سیستم در حال حاضر پشت بسیاری از لینک های امن باز شده در گوگل کروم هستند. اعتبار: چلسی ترنر، MIT
 
تقریباً هر بار که شما یک مرورگر امن گوگل کروم را باز می کنید، یک سیستم جدید رمزنگاری توسعه یافته توسط MIT دارد کمک می کند که از اطلاعات شما بهتر محافظت شود.
 
محققان MIT، در یک مقاله که در سمپوزیوم IEEE در مورد امنیت و حریم خصوصی ارائه شده است، یک سیستم را که برای اولین بار کد رمزنگاری بهینه شده را، که معمولا توسط دست نوشته می شود، به طور خودکار تولید می کند، به تفصیل شرح می دهند. در حالی که در اوایل سال 2018 تولید شد، از این سیستم در حال حاضر به طور گسترده ای توسط گوگل و سایر شرکت های فن آوری استفاده می شود.
 
این مقاله در حال حاضر به دیگر محققان در این زمینه نشان می دهد که چگونه روش های خودکار شده برای پیشگیری از بروز خطاهایی که در تولید کد رمزی توسط انسان به عمل می‌آید، می تواند اجرا شود، و چگونه تنظیمات کلیدی روی مؤلفه های سیستم می تواند کمک کند که عملکرد بالاتری به دست آید.
 
برای ایمن سازی ارتباطات آنلاین، پروتکل های رمزنگاری، الگوریتم های ریاضی پیچیده‌ای را اجرا می کنند که بعضی از حساب های پیچیده را روی اعداد بزرگ انجام می دهند. با این حال، در پشت صحنه، یک گروه کوچک از کارشناسان، این الگوریتم ها را با دست می نویسند و بازنویسی می کنند. برای هر الگوریتم، آنها باید تکنیک های مختلف ریاضی و معماری‌های تراشه را برای بهینه سازی عملکرد، بسنجند. وقتی ریاضی یا معماری متضمن تغییر می کند، آنها همه چیز را به کلی از ابتدا شروع می کنند. جدای از این که این کار زحمت زیادی دارد، این فرآیندِ دستی می تواند الگوریتم های غیربهینه ای تولید کند و اغلب باگ هایی را معرفی می کنند که بعدا گرفته و مستقر می شوند.
 
به جای این کار، محققان آزمایشگاه علوم کامپیوتری و هوش مصنوعی (CSAIL)، «رمزنگاری امری» را طراحی کردند که سیستمی است که به طور خودکار الگوریتم های رمزنگاری شده، که در سراسر سیستم عامل های سخت افزاری بهینه سازی شده اند، را تولید و به طور همزمان ممیزی می کند. در تست ها، محققان دریافتند که سیستمشان می تواند الگوریتم هایی را تولید کند که مطابقت می کنند با عملکرد بهترین کد دستنویس، اما خیلی سریعتر تولید می‌شوند.
 
کدِ به طور اتوماتیک تولید شده‌ی محققان؛ BoringSSL گوگل، که یک کتابخانه رمزنگاری منبع باز است، را مشهور ساخته است. گوگل کروم، برنامه های کاربردی آندروید و سایر برنامه ها از BoringSSL برای تولید کلیدها و گواهی های مختلف مورد استفاده برای رمزگذاری و رمزگشایی داده ها استفاده می کنند. به گفته محققان، حدود 90 درصد از ارتباطات ایمن کروم اکنون کد خود را اجرا می کنند.
 
مؤلف همکار مقاله، آدام چلیپالا، که یک محقق CSAIL و پروفسور وابسته مهندسی برق و علوم رایانه و رئیس گروه زبان‌های برنامه نویسی و بازبینی است، گفت: "رمزنگاری با انجام عملیات حسابی روی اعداد بزرگ انجام می شود. «رمزنگاری امری» اجرای الگوریتم های ریاضی را سرراست‌تر می سازد... زیرا ما ساختن کد را خودکار می کنیم و برهان هایی فراهم می آوریم که کد صحیح است." "این اساساً همانند گرفتن فرآیندی است که در مغزهای انسانی اجرا می شود و درک خوب کافی آن برای نوشتن کدی است که آن فرایند را تقلید می کند."
 
جاناتان پروتزنکو از تحقیقات مایکروسافت، یک متخصص رمزنگاری که در این تحقیق دخیل نبود، این کار را به عنوان نمایش تغییری در تفکر صنعت می بیند.
 
او می گوید: "رمزنگاریٍ امری که در BoringSSL مورد استفاده قرار می گیرد، کل جامعه «رمزنگاری» را بهره مند می سازد." "این نشانه ای است که زمان ها در حال تغییرند و این که پروژه های نرم افزاری بزرگ در حال درک این مطلب هستند که رمزنگاری ناامن مسئولیت دارد، و نشان می دهد که نرم افزار ممیزی شده به اندازه کافی کامل شده است که وارد جریان اصلی شود. امیدوارم پروژه های نرم افزاری مستقر شده‌ی بیشتر و بیشتری این تغییر به رمزنگاری بازبینی شده را محقق سازند. شاید در طی چند سال آینده، نرم افزار بازبینی شده نه تنها برای الگوریتم های رمزنگاری، بلکه همچنین برای سایر دامنه های کاربردی قابل استفاده باشد."
 

شکافتن بیت‌ها

پروتکل های رمزنگاری از الگوریتم های ریاضی برای تولید کلید های عمومی و خصوصی استفاده می کنند که اساسا رشته ای طولانی از بیت ها هستند. الگوریتم ها از این کلید ها برای فراهم کردن کانال های ارتباطی امن بین یک مرورگر و یک خدمات دهنده استفاده می کنند. یکی از محبوب ترین خانواده های کارآمد و امن الگوریتم های رمزنگاری، رمزنگاری منحنی بیضوی (ECC) نامیده می شود. روش های خودکار شده برای پیشگیری از بروز خطاهایی که در تولید کد رمزی توسط انسان به عمل می‌آید، می تواند اجرا شود اساساً، این رمز نگاری، با انتخاب نقاط عددی تصادفی در طول یک خط منحنی شده‌ی شماره دار روی یک گراف، کلید هایی از اندازه های متنوع برای استفاده کنندگان تولید می کند.
 
اکثر تراشه ها نمی توانند چنین اعداد بزرگی را در یک مکان ذخیره کنند، بنابراین آنها به طور خلاصه آنها را به رقم های کوچکتری می شکافند که روی واحدهایی به نام رجیستر ذخیره می شوند. اما تعداد رجیسترها و میزان ذخیره سازی آنها از یک تراشه به تراشه دیگر، متفاوت است. چلیپالا می گوید: "شما باید بیت ها را در سرتاسر دسته ای از مکان های مختلف بشکافید، اما معلوم می شود که این که چگونه بیت ها را بشکافید، پیامدهای عملکردی مختلفی دارد."
 
به طور سنتی، کارشناسانی که الگوریتم های ECC را به صورت دستی می نویسند آن تصمیمات شکاف دهنده‌ی بیت را در کد خود اجرا می کنند. در کارشان، محققین MIT توانستند از آن تصمیمات انسانی به صورت اهرمی برای تولید خودکار کتابخانه ای از الگوریتم های ECC بهینه سازی شده برای هر سخت افزاری استفاده کنند.
 
محققانِ آنها  نخست اجراهای موجود الگوریتم های ECC دست نویس را، در زبان های برنامه نویسی C و اسمبلی، کاوش کردند، و آن تکنیک ها را به کتابخانه کد خود انتقال دادند. این، یک لیست از بهترین الگوریتم های در حال اجرا را برای هر معماری تولید می کند. سپس، آن از یک کامپایلر استفاده می کند – که برنامه ای است که زبان های برنامه نویسی را به کدهایی که کامپیوترها می فهمند برمی گرداند - که با یک ابزار آزمون، به نام کُک، ثابت شده است که درست است. اساساً، تمام کد تولید شده توسط آن کامپایلر همیشه از نظر ریاضی ممیزی می شود. سپس هر الگوریتم را شبیه سازی می کند و از هر معماری تراشه بهترین اجرا کننده را انتخاب می کند.
 
در ادامه، محققان در حال کار بر روی راه هایی هستند تا کامپایلر خود را وادارند حتی سریعتر در جستجو برای الگوریتم های بهینه شده اجرا شود.
 
منبع: راب ماتسون، مؤسسه فناوری ماساچوست